/**
 * 版权所有:版权所有(C) 2020，卓信科技
 * 系统名称:pms-项目管理系统
 * 文件名称:PmPersonnelDao.java
 * 模块名称:员工管理
 * 创建日期:2020年5月8日
 * 作        者:sunlq
 * 内容摘要:员工管理
 */
package com.zx.emanage.user.persist;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.zx.emanage.postLoanManage.vo.SysProcessConfigVO;
import com.zx.emanage.user.vo.PmPersonnel;
import com.zx.emanage.util.gen.entity.SysApplyType;
import com.zx.emanage.util.gen.entity.SysDept;
import com.zx.emanage.util.gen.entity.sysPersonnelDeptManage;

/**
 * 类  名  称:PmPersonnelDao
 * 内容摘要:员工管理
 * 作        者:sunlq
 */
public interface PmPersonnelDao
{

    /**
     * 方法名称: getPersonnelList
     * 内容摘要: 员工查询
     *
     * @param personnel_shortCode
     * @return
     * @author: sunlq
     * @time:2020年5月11日 上午11:25:25
     */
    List<PmPersonnel> getPersonnelList(@Param("personnel_shortCode") String personnel_shortCode);

    /**
     * 方法名称: getSysDeptById
     * 内容摘要: 获取部门信息
     *
     * @param submitPerDeptId
     * @return
     * @author: Baisong
     * @time:2020年8月6日 下午4:04:50
     */
    SysDept getSysDeptById(int submitPerDeptId);

    /**
     * 方法名称: findPersonnelById
     * 内容摘要: 根据id获取信息
     *
     * @param id
     * @return
     * @author: Baisong
     * @time:2020年8月6日 下午4:08:58
     */
    PmPersonnel findPersonnelById(String id);

    /**
     * 方法名称: findAllDept
     * <p>
     * 内容摘要: 获取所有部门
     *
     * @return
     * @author: Baisong
     * @time:2020年8月6日 下午4:10:13
     */
    List<Map<String, Object>> findAllDept();

    /**
     * 方法名称: findAllNonDfType
     * 内容摘要: TODO(这里详细描述这个方法的作用)
     *
     * @return
     * @author: Baisong
     * @time:2020年8月6日 下午4:14:55
     */
    List<SysApplyType> findAllNonDfType();

    /**
     * 方法名称: findAllProcessConfig
     * 内容摘要: 申请人部门在流程配置表中的记录
     *
     * @param dept_id
     * @return
     * @author: Baisong
     * @time:2020年8月6日 下午4:17:49
     */
    List<SysProcessConfigVO> findAllProcessConfig(Integer dept_id);

    /**
     * 方法名称: findProcessDetails 内容摘要: 根据主表的子id获取在子表详细信息
     *
     * @param process_config_id
     * @return
     * @author: Baisong
     * @time:2020年8月6日 下午4:21:31
     */
    List<SysProcessConfigVO> findProcessDetails(Integer process_config_id);

    /**
     * 方法名称: getPersonnelById
     * 内容摘要: TODO(这里详细描述这个方法的作用)
     *
     * @param paramMap
     * @return
     * @author: Baisong
     * @time:2020年8月6日 下午4:27:12
     */
    PmPersonnel getPersonnelById(Map<String, Object> paramMap);

    /**
     * 方法名称: getDManageByDeptId
     * <p>
     * 内容摘要: TODO(这里详细描述这个方法的作用)
     *
     * @param dept_id
     * @return
     * @author: Baisong
     * @time:2020年8月6日 下午4:35:56
     */
    List<sysPersonnelDeptManage> getDManageByDeptId(Integer dept_id);

    /**
     * 方法名称: forDeptId
     * 内容摘要: TODO(这里详细描述这个方法的作用)
     *
     * @param appDeptId
     * @return
     * @author: Baisong
     * @time:2020年8月6日 下午4:38:59
     */
    String forDeptId(Integer appDeptId);

    /**
     * 方法名称: getPersonnelIdByDeptId 内容摘要: TODO(这里详细描述这个方法的作用)
     *
     * @param parseInt
     * @return
     * @author: Baisong
     * @time:2020年8月6日 下午4:39:33
     */
    String getPersonnelIdByDeptId(int parseInt);

    /**
     * 方法名称: getSysDeptByCode 内容摘要: TODO(这里详细描述这个方法的作用)
     *
     * @param string
     * @return
     * @author: Baisong
     * @time:2020年8月6日 下午4:41:56
     */
    SysDept getSysDeptByCode(String string);

    /**
     * 方法名称: findFlowType 内容摘要: TODO(这里详细描述这个方法的作用)
     *
     * @param apply_type
     * @return
     * @author: Baisong
     * @time:2020年8月7日 上午9:53:27
     */
    SysApplyType findFlowType(Integer apply_type);

    /**
     * 方法名称: getPersonnelListForBusinessTrip
     * 内容摘要: TODO(添加出差同行人列表)
     *
     * @param paramMap
     * @return
     * @author: wuguoqiang
     * @time:2020年8月20日 下午2:28:44
     */
    List<Map<String, Object>> getPersonnelListForBusinessTrip(Map<String, Object> paramMap);

    /**
     * 方法名称: getPersonnelListForBusinessTripCount
     * 内容摘要: TODO(添加出差同行人列表条数)
     *
     * @param paramMap
     * @return
     * @author: wuguoqiang
     * @time:2020年8月20日 下午2:28:55
     */
    int getPersonnelListForBusinessTripCount(Map<String, Object> paramMap);

    /**
     * 方法名称: getPersonnelListForTripMOA
     * 内容摘要: TODO(moa出差同行人列表)
     *
     * @return java.util.List<java.util.Map < java.lang.String, java.lang.Object>>
     * @Param [paramMap]
     * @Author: wuguoqiang
     * @time: 2020/10/12 10:20
     **/
    List<Map<String, Object>> getPersonnelListForTripMOA(Map<String, Object> paramMap);
    
    /**
     * 
     * 方法名称: getUserInfoByRoleAll
     * 内容摘要: TODO(查询所有当前角色的人)
     * @param paramMap
     * @return 
     *
     * @author: wuguoqiang
     * @time:2020年10月26日 下午5:05:12
     */
    List<Map<String, Object>> getUserInfoByRoleAll(Map<String, Object> paramMap);

	/**
	 * 方法名称: findAllApplyType 内容摘要: TODO(这里详细描述这个方法的作用)
	 * 
	 * @return
	 *
	 * @author: Baisong
	 * @time:2020年10月26日 下午4:41:55
	 */
	List<SysApplyType> findAllApplyType();

	/**
	 * 方法名称: getApply_typeForDept
	 * 内容摘要: TODO(这里详细描述这个方法的作用)
	 * @param apply_typeForDeptMap
	 * @return 
	 *
	 * @author: Baisong
	 * @time:2020年10月26日 下午4:43:08
	*/
	SysProcessConfigVO getApply_typeForDept(Map<String, Object> apply_typeForDeptMap);

	/**
	 * 方法名称: findDataByid 内容摘要: TODO(这里详细描述这个方法的作用)
	 * 
	 * @param apply_type
	 * @return
	 *
	 * @author: Baisong
	 * @time:2020年10月26日 下午4:54:51
	 */
	Map<String, Object> findDataByid(Integer apply_type);
	
	/**
	  * @Title: getPersonnelByRole
	  * @Description: 根据角色获取人员
	  * @param @param paramMap
	  * @param @return
	  * @return List<PmPersonnel>
	  * @author: wangyihan
	  * @time: 2021年8月12日 下午2:36:05
	  * history:
	  * 1、2021年8月12日 下午2:36:05 wangyihan 创建方法
	  *
	 */
	List<PmPersonnel> getPersonnelByRole(Map<String, Object> paramMap);
	
	
	
}
